package cn.nr19.jian.token


/**
 * 禁止混淆这个
 */
class Token {
    var type : EToken = EToken.NONE

    // 位置 行，行所在位置
    //var line = 0
    //var position = 1
    var pos = 0

    // 完整内容
    var text : String = ""

    constructor(){

    }
    constructor(type : EToken, char : Char,position : Int){
        this.type = type
        this.text = char.toString()
        this.pos = position
    }
    constructor(type : EToken, str : String,position : Int){
        this.type = type
        this.text = str
        this.pos = position
    }

    fun put(char: Char){
        this.text += char
    }
    /**
     * 插入换行符  需要本身就是换行
     */
    fun pn(char: Char) : Boolean{
        return (type == EToken.PN).let {
            if (it) text += char
            it
        }
    }

    /**
     * 插入字母
     */
    fun pkey(char: Char) : Boolean{
        return (type == EToken.KEY).let {
            if (it) text += char
            it
        }
    }

    override fun toString(): String {
        return "${type}(${text})"
    }

}